Popularity of portable computer systems has driven computer designers to integrate more processing power, more memory capacity, and more peripherals into a single portable unit. Advances in core logic, a term known in the art to comprise support logic, and other common circuitry integrated into a chip or chipset, allows more functionality to be placed in smaller, lighter packages.
A primary element of a portable computer system is a display. Since Cathode Ray Tube (CRT) displays are relatively large and heavy, with high power requirements, other alternatives have actively been sought. Flat panel display technology represents a significant alternative to CRT display technology. Flat panel displays may have several advantages over CRT displays. Flat panel displays comprise active or passive Liquid Crystal Displays (LCD) displays, field-emission displays, plasma displays, electro-luminescent displays, and many others all available in a wide variety of sizes and sub-types. LCD units have been a flat panel design choice of preference in most systems. LCD displays may have advantages of being compact and relatively flat, consuming little power, and in many cases displaying color. Typical disadvantages of LCD displays may be poor contrast in bright light--especially bright natural light, inconsistent performance in cold temperatures, and display resolutions which may be constrained by a fixed number of row elements and column elements. Among these limitations, fixed resolution may cause significant problems for LCD operation in a multimedia environment.
Flat panel displays may typically comprise two glass plates pressed together with active elements sandwiched between. High resolution flat panel displays use matrix addressing to activate pixels. Conductive strips for rows may be embedded on one side of a panel and similar strips for columns are located on the other side. Panels may be activated on a row by row basis in sequence. This process may described in more detail in a text entitled: "High Resolution Graphics Display Systems", Peddie 1994 (p. 191-225), incorporated herein by reference, however the general nature of LCD addressing is known in the art.
LCD flat panel display resolution may be dictated by physical construction of an LCD. CRT displays have a continuous phosphor coating and may be illuminated by an analog signal driving an electron beam. Because of the analog nature of CRT displays virtually any point on the CRT screen may be illuminated, thus scaling display resolution is relatively simple. LCD displays have a fixed array of physical pixels which may be turned on or off by applying or removing a charge. While resolution of a CRT may be changed by changing display modes and corresponding scanning frequency parameters, LCDs are limited by number of row and column elements used to manufacture an LCD device. Fixed resolution in LCD displays is particularly troublesome in multimedia systems which may require changes in display resolution to take full advantage of applications displaying high resolution graphics. In addition, for a manufacturer of display controllers to claim full VGA, SVGA, and XGA compatibility limitations of fixed panel resolution must be overcome.
TABLE 1 ______________________________________ Vertical scanning frequencies for different graphics display modes ______________________________________ VGA Panel 640 .times. 480 25 MHz SVGA Panel 800 .times. 600 40 MHZ XGA Panel 1024 .times. 768 65 MHZ ______________________________________
Like an analog CRT, an LCD panel may be controlled by a horizontal and vertical scanning signal. Data may be displayed in its respective screen position during an interval in time corresponding to when vertical and horizontal scan signals for a particular location coincide. Vertical scan signals are set at a frequency proportional to display resolution. Table 1 contains the vertical scanning frequencies for popular graphics display modes. Typical vertical scanning frequencies may be 25 MHz for 640 pixel by 480 pixels display, 40 MHz 800 by 600, 65 MHz 1024 by 768. New panels comprising 1280 by 960 pixels may have an even higher vertical scanning frequency. A high resolution display therefore may have a higher scanning frequency than a relatively lower resolution display. Using the general principal stating high frequency is proportional to high resolution, some downscaling may be achieved by attempting to replicate lower scanning frequencies of low resolution display while maintaining native scanning resolution. On a fixed resolution display of say 600 by 800 pixels, a 640 by 480 resolution output may be scaled by lowering the frequency at which data is clocked to the display.
Most multimedia computers have the ability to select from one of several display resolutions. Common display resolutions may be 640 pixels by 480 pixels, 600 pixels by 800 pixels, and 1024 pixels by 768 pixels. A standard fixed resolution LCD display may be 600 pixels by 800 pixels. A standard universal VGA resolution may be 640 pixels by 480 pixels with 256 colors. When a low graphic resolution must be displayed on a fixed resolution LCD display certain problems may arise. To properly display all VGA modes in a portable computer environment with a fixed resolution LCD panel display, desired graphics resolution must be scaled to the panel resolution. Fewer problems are inherent in downscaling, when desired display resolution is larger than the panel. Upscaling however may present special problems.
When attempting to display lower resolution graphics on higher resolution, fixed resolution panel displays a variety of compensation methods may be used. Compensation features may be made available through use of shadow registers and extension registers. Both compensation method and desired parameters, such as output resolution may be set through use of registers.
Some systems employ a compensation technique known as centering. With centering, smaller resolution graphics are placed within a larger resolution display in the center of the display. One problem associated with centering a 640 by 480 display at full color within, for example, a 1024 by 768 display is limited bandwidth. Another problem with centering and prior art expansion techniques is the scope of programming required to support it. Many shadow registers must be programmed, and protection mechanisms must be in place to configure and then preserve the expanded display settings.
FIG. 2 is a diagram illustrating a prior art technique of centering. During centering, Graphics Window 200 with a resolution of 640 pixels by 480 pixels may be displayed on Fixed Resolution Panel 201 which is capable of displaying at a fixed resolution of 1024 pixels by 768 pixels. Graphics Window 200 may be generated by a software application such as a computer game with high resolution graphics. For consistency and compatibility purposes, such a computer game may generate a display with a resolution of 640 pixels by 480 pixels regardless of the resolution capability of the display.
Differences in size must be accommodated to physically center a smaller display within a larger resolution panel. Additionally, differences in normal VGA timing which may be around 25 MHz, and native timing of an LCD panel which, for a 1024 pixel by 768 pixel display, may be around 65 MHz must be accommodated. In other words, during centering, a panel must actively accommodate the difference between lower resolution graphics mode and higher resolution panel by generating blank pixels. The resulting display is often too small to be viewed acceptably. For a 1024 by 768 pixel panel there may be 9 or 10 inches of display surface of which one third may go unused during centering. Not only does this waste the capability of the panel, it is often too small to read text either in Windows.TM. or in DOS text mode.
Another compensation technique for vertical scaling is known as line replication. In line replication or stretching, every Nth line may be duplicated on a subsequent line. In text mode, only blank line insertion may be used to evenly fill an entire panel.
Yet another problem arises when attempting to drive two display devices with different display resolutions through a SIMULSCAN.TM. output. If Microsoft.TM. Windows.TM. is running, a dual display mode may be activated by way of an icon as is done for SIMULSCAN.TM. displays. Requests may then be passed by Windows.TM. Graphic Driver Interface (GDI) to appropriate display driver and hardware. Only one graphics resolution, however, may be selected for one or both displays at one time. In other words, separate display resolutions may not be desirable for each display in a particular SIMULSCAN.TM. environment. Thus, on a notebook system with an 800 pixel by 600 pixel LCD display, if a 640 pixel by 480 pixel resolution is chosen, for example, to drive an external LCD projection panel as a SIMULSCAN.TM. output, then the LCD output must either be "centered" as described earlier or otherwise accommodated.
High resolution LCD projection panels with color capability may also present problems when attempting to run in high resolution mode. Some projection panels may operate at a resolution of 640 pixels by 480 pixels. Problems related to centering may occur on a high resolution LCD panel when 640 pixels by 480 pixels resolution is set for the projection panel. So-called "multimedia" presentations have become increasingly popular. These presentations usually, as the name implies, use a variety of media (e.g., sound, image, video or the like) to make an information presentation such as a sales promotion, or educational lecture. For a travelling lecturer, a powerful lap-top or notebook computer, coupled to a portable LCD projector screen and overhead projector may provide a dynamic and effective presentation.
An LCD projector screen can be coupled to an external video port (e.g., VGA, EGA or the like) of most portable computers and, when coupled to an overhead projector, project a display image onto a wall or screen. Other types of LCD projector screens incorporate the projector (e.g., light source, focusing lenses) into one compact unit. Alternately, a large, high resolution monitor can be used to provide a presentation display for a small to medium sized group. A computer allows use of action video and colorful special effects, and in addition avoids typical problems associated with using overhead transparencies.
When such multimedia display equipment is used with conventional portable computers, because of fixed resolution related problems, a single display resolution only may be displayed on both displays (internal or projected) at the same time. In many instances, it may be desirable to project presentation material on an external monitor while displaying other information (e.g., speaker's notes) on an internal display. It may also be desirable to switch between internal and external displays, such that a speaker may preview an image prior to projection display. Furthermore, a need for two video displays containing different images may arise in other situations where computers are used, such as CAD systems, spreadsheets, and word processors. In particular, use of Windows.TM. may make it desirable to allow a user to open one window (or application) on a first video display (e.g., laptop flat panel display) and open another application on another display (e.g., external monitor). Thus, for example, a user may be able to display a scheduler (daily organizer) program on one display while operating a word processing program on another.
One prior art approach to providing multiple displays with different images driven by one computer has been to provide separate video controllers for each display. In lap-top or notebook computers, however, use of two separate controllers may increase power drain, cost, weight and size. Minimizing power, cost, size, and weight is especially critical in highly competitive notebook computer markets.
Traditional methods to drive two displays involves two signals sharing refresh rates. To faithfully provide two distinct display resolutions, it may be desirable to generate two separate signals for two video displays having different resolutions, pixel depths, and/or refresh rates. For example, it may be desirable to generate two displays in different graphics modes, or one display in a graphics mode and another in text mode. Moreover, two different displays (e.g., flat panel display and CRT) may use refresh rates different from one another. Alternately, one display may provide improved performance operating at a particular refresh rate unavailable for the other display. In the context of upscaling an image to a fixed resolution display however, tractional methods may not be available or may be inefficient.
In some cases, where Windows.TM. is being run in native mode, different graphics resolutions may be run on an LCD display without a problem. Displaying multiple resolutions is possible in Windows.TM. native mode by using software drivers which compensate for differences in LCD display capability and desired graphics resolution. The problem associated with a fixed high resolution LCD panel may arise particularly when attempting to run computer games.
For various historical and compatibility reasons most popular computer games are run from DOS. Typical graphics resolution for most games run from DOS may be 640 pixels by 480 pixels. This represents inefficient use of display resolution on an LCD panel capable of displaying 600 pixels by 800 pixels or 1024 pixels by 768 pixels. It would be advantageous to take advantage of full display resolution of high resolution LCD display panels.
Interpolation is a well-known prior art technique used for upscaling video images. In an interpolation scheme, several adjacent pixels in a source video image are typically used to generate additional new pixels. During vertical interpolation of source image data, throughput performance problems may be encountered in a scan line dominant order of storing scheme because vertical interpolation usually requires pixels from different scan lines. Accessing different scan lines may require retrieving data from different pages of display memory forcing a non-aligned or non-page mode read access. A non-page mode read access may require more clock cycles than a page mode access for memory locations within a pre-charged row. Thus average memory access time during vertical interpolation may be much higher than consecutive memory accesses within the same row. High average memory access time during vertical interpolation may result in a decrease in the overall throughput performance of a graphics controller chip.
To minimize number of accesses across different rows, a graphics controller chip may retrieve and store a previous scan line in a local memory element. For example, with respect to FIG. 1, a graphics controller chip may retrieve and store all pixels corresponding to scan line A-B and store retrieved pixels in a local memory located in a graphics controller chip. The graphics controller chip may then retrieve pixels corresponding to scan line C-D, and interpolate using pixels stored in local memory.
In order to generate two video signals having different refresh rates and resolutions, it may be necessary to generate different dot clock frequencies, vertical and horizontal sync signals. In addition, each display output may be capable of generating a MotionVideo.TM. window using Motion Video Architecture.TM. (MVA.TM.). Aspects of MVA.TM. are described, for example in co-pending applications Ser. No. 08/235,764, filed Apr. 29, 1994, entitled "VARIABLE PIXEL DEPTH AND FORMAT FOR VIDEO WINDOWS" now U.S. Pat. No. 5,608,864, and Ser. No. 08/359,315, filed Dec. 19, 1994, entitled "MEMORY BANDWIDTH OPTIMIZATION" now U.S. Pat. No. 5,611,041.
Briefly, Motion Video Architectures.TM. may allow for generation of a hardware window in a video display displaying data stored in off-screen memory having a different pixel depth then surrounding background display. A hardware window may be a window within a graphical display environment like Windows.TM., the contents of which are generated directly from hardware as opposed to being generated within a software graphics driver such as a call to Windows.TM. GDI or other application. For example, while running a Windows.TM. display in eight bits per pixel (bpp) graphics mode, a hardware MotionVideo.TM. window may be generated having a different pixel depth such as 16 bits per pixel, or 24 bits per pixel. The pixel depth of the MotionVideo.TM. window may be generated from a compressed mode (e.g., 4-2-2-YUV, MPEG, Accupak.TM. or the like). Examples of hardware incorporating Motion Video Architectures.TM. include the Cirrus Logic GD-5440, -7543, and -7548 graphics controller integrated circuits.